package com.yupi.yupicturebackend.service;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.yupicturebackend.model.dto.picture.PictureQueryRequest;
import com.yupi.yupicturebackend.model.dto.picture.PictureReviewRequest;
import com.yupi.yupicturebackend.model.dto.picture.PictureUploadRequest;
import com.yupi.yupicturebackend.model.entity.Picture;
import com.yupi.yupicturebackend.model.entity.User;
import com.yupi.yupicturebackend.model.vo.PictureVO;
import org.springframework.web.multipart.MultipartFile;

/**
* @author Administrator
* @description 针对表【picture(图片)】的数据库操作Service
* @createDate 2025-04-30 23:00:11
*/
public interface PictureService extends IService<Picture> {
    /**
     * upload picture
     * @param inputStream
     * @param request
     * @param loginuser
     * @return
     */
    PictureVO uploadPicture(Object inputStream, PictureUploadRequest request, User loginuser);

    /**
     * Concatenate query condition based on parameters
     * @param pictureQueryRequest
     * @return
     */
    QueryWrapper<Picture> Query_Wrapper(PictureQueryRequest pictureQueryRequest);

    /**
     * encapsulate a single picture
     * @param picture
     * @return
     */
    PictureVO getPictureVO(Picture picture);

    /**
     * encapsulate many picutrevo
     * @param picturePage
     * @return
     */
    Page<PictureVO> getPictureVOPage(Page<Picture> picturePage);

    /**
     * Picture review
     * @param reviewRequest
     */
    void PictureReview(PictureReviewRequest reviewRequest);


}
